import grails.util.GrailsUtil

import org.apache.shiro.crypto.hash.Sha256Hash

import br.com.zanictech.grails.broker.Moeda;
import br.com.zanictech.grails.broker.Servidor
import br.com.zanictech.grails.broker.User
import br.com.zanictech.grails.commons.Cidade
import br.com.zanictech.grails.commons.Estado
import br.com.zanictech.grails.commons.Lingua
import br.com.zanictech.grails.commons.Pais

class BootStrap {

    def init = { servletContext ->
		def user = new User(username: "master", passwordHash: new Sha256Hash("master").toHex())
		user.addToPermissions("*:*")
		user.save()

		if(GrailsUtil.developmentEnv) {
			def broker01 = new Servidor(nome: "Broker 01", ip: 'localhost', porta: 4444); broker01.save()
			def broker02 = new Servidor(nome: "Broker 02", ip: '127.0.0.1', porta: 5555); broker02.save()
			
			def lingua01 = new Lingua(nome: "Português"); lingua01.save()
			def lingua02 = new Lingua(nome: "Espanhol"); lingua02.save()
			def lingua03 = new Lingua(nome: "Inglês"); lingua03.save()
			
			def pais01 = new Pais(nome: "Brasil", lingua: lingua01); pais01.save()
			def pais02 = new Pais(nome: "Paraguai", lingua: lingua02);	pais02.save()
			def pais03 = new Pais(nome: "Inglaterra", lingua: lingua03);	pais03.save()
			
			def estado01 = new Estado(nome: "Paraná", pais: pais01); estado01.save()
			def estado02 = new Estado(nome: "São Paulo", pais: pais01); estado02.save()
			def estado03 = new Estado(nome: "Santa Catarina", pais: pais01); estado03.save()
			
			def cidade01 = new Cidade(nome: "Maringá", estado: estado01); cidade01.save()
			def cidade02 = new Cidade(nome: "Cianorte", estado: estado01); cidade02.save()
			def cidade03 = new Cidade(nome: "Presidente Prudente", estado: estado02); cidade03.save()
			
			def moeda01 = new Moeda(nome: "Real", prefixo: "R\$"); moeda01.save()
			def moeda02 = new Moeda(nome: "Dollar", prefixo: "\$"); moeda02.save()
		}
    }
	
    def destroy = {
    }
}
